package com.takeaway.service.serviceinterface;

import com.takeaway.pojo.Book;
import com.takeaway.pojo.Cart;
import com.takeaway.pojo.Food;

import java.util.List;

/**
 * @author 后台赖骏
 */
public interface FoodService {
    /**
     * 进行用户的商店展示
     * @param begin 开始查询的页码
     * @param listNum 一共展示的条数
     * @param shopId 当前商店的id
     * @return 返回商店
     * @throws Exception 抛出异常进行出来
     */
    List<Food> showLimitFood(int begin, int listNum, int shopId)throws Exception;

    /**进行用户的商店菜品展示
     * @param shopId 当前商店的id
     * @return 返回商店
     * @throws Exception 抛出异常进行出来
     */
    List<Food> showShopFood( int shopId) throws Exception;
    /**返回数据库中的数据条数
     * @return 返回条数
     * @param shopId 当前商店的id
     * @throws Exception 抛出异常
     */
    long checkFoodNum(int shopId) throws Exception;
    /**查询该用户的购物车
     * @param carts 用户的购物车
     * @return 返回Food集合
     * @throws Exception 抛出异常进行回滚
     */
    List<Food> checkCartFood(List<Cart> carts) throws Exception;
    /**查询该用户的购物车
     * @param books 用户的订单
     * @return 返回Food集合
     * @throws Exception 抛出异常进行回滚
     */
    List<Food> checkBookFood(List<Book> books) throws Exception;

    /**新增菜品
     * @param disName 新增的菜名
     * @param description 新增的描述
     * @param price 价格
     * @param shopId 商家的id进行增加
     * @return 增加成功的条数
     * @throws Exception 抛出异常进行处理
     */
    int addFood(String disName,String description,double price,int shopId) throws Exception;

    /**删除菜品
     * @param foodId 获取评论的id进行删除
     * @return 返回删除的条数
     * @throws Exception 抛出异常进行处理
     */
    int deleteFood(int foodId) throws Exception;
    /**新增菜品
     * @param disName 修改的菜名
     * @param description 修改的描述
     * @param price 价格
     * @param foodId 获取菜品的id进行修改
     * @return 修改成功的条数
     * @throws Exception 抛出异常进行处理
     */
    int updateFood(int foodId,String disName,String description,double price) throws Exception;

    /** 上传菜品图片
     * @param foodId 菜品的id名
     * @param photoName 图片名称
     * @return 返回修改成功条数
     * @throws Exception 抛出异常
     */
    int updatePhoto(int foodId,String photoName) throws Exception;

    /**获得单项菜品
     * @param foodId 菜品的id
     * @return 返回菜品
     * @throws Exception 抛出异常进行处理
     */
    Food checkSingleFood(int foodId) throws Exception;
}
